1 REM **************** 2 REM *BY MIKE FLAVEL* 3 REM **************** 9 DIMS$(40),A(40),M(40,40),U(40) 10 POKE53280,0:POKE53281,0:PRINTCHR$(8),CHR$(14) 11 PRINT"[147]"TAB(13)"[152][176][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 20 PRINTTAB(13)"[152][221][195]LASS [208]ROGRAM[221]" 21 PRINTTAB(13)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][189][151]" 30 PRINT"";TAB(18)"[205]ENU[151]" 35 PRINTTAB(18)"[163][163][163][163]" 40 PRINT"[153][1] [195]REAT A [195]LASS" 41 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][151]" 50 PRINT"[2] [210]EVIEW A [195]LASS" 51 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 55 PRINT"[152][3] [193]DD [205]ARK" 56 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163]" 60 PRINT"[158][4] [193]DD [211]TUDENT" 61 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 62 PRINT"[152][5] [208]RINT OUT OF CLASS" 63 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 65 PRINT"[129][6] [195]HANGE MARK" 66 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 67 PRINT"[155][7] [197]ND " 68 PRINT"[163][163][163][163][163][163][163]" 69 PRINT"[8] [210]EAD ERROR CHANNEL" 70 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 74 GETA$ 75 IFVAL(A$)=0THEN74 80 A=VAL(A$) 90 ONAGOTO100,500,900,1600,1900,2400,2300,3100 100 REM CREAT A CLASS 105 PRINT"[153][147][195]REAT A CLASS" 110 INPUT"[151][197]NTER NAME OF CLASS";C$ 120 PRINT"[147][199]REATER THAN 1" 121 INPUT"[197]NTER NUMBER OF STUDENTS IN CLASS";S 122 IFS<=1THEN121 130 FORZ=1TOS 134 PRINT"[147][211]TUDENTS ENTERED SO FAR:" 135 FORF=1TOZ:PRINTS$(F),:NEXTF:PRINT 140 PRINT"[197]NTER STUDENT #";Z;""; 150 INPUTS$(Z) 160 REM ZERO 161 PRINT"[147][151][200]OW MANY MARKS DO YOU WISH TO GIVE ":PRINTS$(Z); 165 PRINT" AT THE PRESENT TIME.[151]" 170 INPUTA(Z) 171 IFA(Z)<1THEN220 180 FORY=1TOA(Z) 190 PRINT"[147][197]NTER MARK #";Y;" FOR ";S$(Z); 200 INPUTM(Z,Y) 210 NEXTY 220 PRINT"[147]":NEXTZ 230 PRINT"[147][206]OW SAVING UNDER ";C$ 240 REM SAVE 250 PRINT"PRESS ANY KEY TO CONTINUE" 260 GETA$:IFA$=""THEN260 265 GOSUB3000 270 OPEN2,8,2,"0:"+C$+",S,W" 280 PRINT#2,S 310 FORZ=1TOS 320 PRINT#2,A(Z) 330 NEXTZ 355 FORZ=1TOS 360 FORY=1TOA(Z) 370 PRINT#2,M(Z,Y) 380 NEXTY 390 NEXTZ 420 FORZ=1TOS 430 PRINT#2,S$(Z) 440 NEXTZ 450 CLOSE2 460 PRINT"[147][196][207][206][197]!![146]" 470 PRINT"[208]RESS ANY KEY TO RETURN TO MENU" 480 GETA$:IFA$=""THEN480 490 RUN 500 REM REVIEW CLASS 505 PRINT"[147][151][210]EVIEW A CLASS" 510 INPUT"[197]NTER NAME OF CLASS";C$ 520 PRINT"[208]LEASE WAIT FOR ABOUT 10 SECONDS" 530 REM WORK 540 OPEN2,8,2,"0:"+C$+",S,R" 550 INPUT#2,S 580 FORZ=1TOS 590 INPUT#2,A(Z) 600 NEXTZ 630 FORZ=1TOS 640 FORY=1TOA(Z) 650 INPUT#2,M(Z,Y) 660 NEXTY 670 NEXTZ 700 FORZ=1TOS 710 INPUT#2,S$(Z) 720 NEXTZ 730 CLOSE2 740 PRINT"[147][198][201][206][201][211][200][197][196]!!" 750 PRINT"[208]RESS ANY KEY TO BEGIN REVIEW" 755 GETA$:IFA$=""THEN755 760 FORZ=1TOS 770 PRINT"[147][211]TUDENT:";S$(Z) 780 PRINT"[205]ARKS:" 785 IFA(Z)<1THENPRINT"[206]O MARK AT PRESENT TIME.":GOTO831 790 FORY=1TOA(Z) 800 PRINTM(Z,Y);""; 810 AV=M(Z,Y)+AV 820 NEXTY 829 T=T+(AV/A(Z)) 830 PRINT"[193]VERAGE IS:";(AV/A(Z)) 831 REM 832 PRINT"[208]RESS ANY KEY TO CONTINUE" 833 GETA$:IFA$=""THEN833 834 AV=0 840 NEXTZ 841 IFT<1THEN846 845 PRINT"[195]LASS AVERAGE:";T/S:GOTO850 846 PRINT"[195]LASS AVERAGE IS UNDETERMINAL" 850 PRINT"[208]RESS ANY KEY TO RETURN TO MENU" 860 GETA$:IFA$=""THEN860 870 RUN 900 REM ADD MARKS 905 PRINT"[152][147][193]DD MARKS" 910 INPUT"[197]NTER CLASS NAME";C$ 920 OPEN2,8,2,"0:"+C$+",S,R" 930 INPUT#2,S 940 FORZ=1TOS 950 INPUT#2,A(Z) 960 NEXTZ 970 FORZ=1TOS 980 FORY=1TOA(Z) 990 INPUT#2,M(Z,Y) 1000 NEXTY 1010 NEXTZ 1020 FORZ=1TOS 1030 INPUT#2,S$(Z) 1040 NEXTZ 1050 CLOSE2 1060 PRINT"PRESS ANY KEY TO BEGIN REVIEW" 1070 GETA$:IFA$=""THEN1070 1080 FORZ=1TOS 1090 PRINT"[147][211]TUDENT:";S$(Z) 1100 PRINT"[205]ARKS:" 1105 IFA(Z)<1THENPRINT"[206]O MARK AT PRESENT TIME":GOTO1160 1110 FORY=1TOA(Z) 1120 PRINTM(Z,Y);""; 1130 AV=M(Z,Y)+AV 1140 NEXTY 1150 PRINT"[193]VERAGE IS:";(AV/A(Z)) 1160 PRINT"[208]RESS ANY KEY TO CONTINUE" 1170 GETA$:IFA$=""THEN1170 1180 AV=0 1190 NEXTZ 1220 INPUT"[147][197]NTER NAME YOU WISH TO ADD TO";Z$ 1230 PRINT"[147][206]OW SEARCHING FOR ";Z$ 1240 FORZ=1TOS 1250 IFZ$=S$(Z)THEN1280 1260 NEXTZ 1270 PRINT"[147][206]AME NOT FOUND. [210]ETURNING TO MENU":FORP=1TO3000:NEXT:RUN 1280 PRINT"[147][206]AME FOUND" 1290 PRINT"[200]ERE ARE HIS CURRENT MARKS" 1300 FORY=1TOA(Z) 1310 PRINTM(Z,Y);" "; 1320 NEXT 1330 PRINT"[197]NTER THE ";A(Z)+1;" MARK." 1340 INPUTM(Z,A(Z)+1) 1350 A(Z)=A(Z)+1 1351 PRINT"[158][208]RESS [F1] TO ADD ANOTHER MARK.[151]" 1352 GETA$:IFA$=""THEN1352 1353 IFA$="[133]"THEN1220 1355 GOSUB3000 1360 PRINT"[147][206]OW SAVING" 1370 OPEN2,8,2,"@0:"+C$+",S,W" 1380 PRINT#2,S 1390 FORZ=1TOS 1400 PRINT#2,A(Z) 1410 NEXTZ 1420 FORZ=1TOS 1430 FORY=1TOA(Z) 1440 PRINT#2,M(Z,Y) 1450 NEXTY 1460 NEXTZ 1470 FORZ=1TOS 1480 PRINT#2,S$(Z) 1490 NEXTZ 1500 CLOSE2 1510 RUN 1600 REM ADD A STUDENT 1605 PRINT"[147][158][193]DD STUDENT TO CLASS" 1610 PRINT"[159][197]NTER [195]LASS NAME YOU WISH TO ADD STUDENTTO" 1620 INPUTC$ 1630 OPEN2,8,2,"0:"+C$+",S,R" 1640 INPUT#2,S 1650 FORZ=1TOS 1660 INPUT#2,A(Z) 1670 NEXTZ 1680 FORZ=1TOS 1690 FORY=1TOA(Z) 1700 INPUT#2,M(Z,Y) 1720 NEXTY 1730 NEXTZ 1740 FORZ=1TOS 1750 INPUT#2,S$(Z) 1760 NEXTZ 1770 CLOSE2 1780 INPUT"[197]NTER NAME OF STUDENT";S$(S+1) 1790 PRINT"[147][197]NTER NUMBER OF MARKS TO BE GIVEN[151]" 1800 INPUTA(S+1) 1805 IFA(S+1)<1THEN1860 1810 FORY=1TOA(S+1) 1820 PRINT"[197]NTER MARK #";Y;" FOR ";S$(Z);"[151]" 1830 INPUTM(S+1,Y) 1840 NEXTY 1860 S=S+1 1865 GOSUB3000 1870 GOTO1360 1900 REM CLASS PRINTOUT 1901 PRINT"[147][152][195]LASS PRINTOUT" 1905 INPUT"[197]NTER CLASS NAME";C$ 1910 OPEN2,8,2,"0:"+C$+",S,R" 1920 INPUT#2,S 1930 FORZ=1TOS 1940 INPUT#2,A(Z) 1950 NEXTZ 1960 FORZ=1TOS 1970 FORY=1TOA(Z) 1980 INPUT#2,M(Z,Y) 1990 NEXTY 2000 NEXTZ 2010 FORZ=1TOS 2020 INPUT#2,S$(Z) 2030 NEXTZ 2040 CLOSE2 2050 PRINT"[147][215]HEN YOU HAVE PAPER IN THE PRINTER AND" 2060 PRINT"YOU HAVE TURNED THE PRINTER ON, PRESS ANY KEY.[151]" 2070 GETA$:IFA$=""THEN2070 2080 OPEN3,4,7 2090 PRINT#3,CHR$(16)"18[195]LASS [210]EPORT" 2100 PRINT#3 2110 PRINT#3,"[195]LASS NAME:";C$ 2120 PRINT#3:PRINT#3 2130 FORZ=1TOS 2140 PRINT#3,"[211]TUDENT:";S$(Z) 2150 PRINT#3,"[211]TUDENTS [205]ARKS" 2155 IFA(Z)<1THENPRINT#3,"[206]O MARKS AT PRESENT TIME":GOTO2188 2160 FORY=1TOA(Z) 2165 T=T+M(Z,Y) 2170 PRINT#3,M(Z,Y);" "; 2180 NEXTY 2185 PRINT#3,CHR$(10)"[193]VERAGE:";T/A(Z) 2186 CA=CA+(T/A(Z)) 2188 T=0 2189 PRINT#3,CHR$(13) 2190 NEXTZ 2194 IFCA<1THEN2196 2195 PRINT#3,"[195]LASS AVERAGE IS:";CA/S:GOTO2200 2196 PRINT#3,"[195]LASS AVERAGE IS UNDETERMINAL" 2197 PRINT#3,CHR$(13) 2200 CLOSE3 2220 RUN 2300 PRINT"[147]":END 2400 REM CHANGE MARK 2405 PRINT"[129][147][195]HANGE MARK" 2410 INPUT"[197]NTER NAME OF CLASS";C$ 2420 PRINT"[208]LEASE WAIT FOR ABOUT 10 SECONDS" 2430 REM WORK 2440 OPEN2,8,2,"0:"+C$+",S,R" 2450 INPUT#2,S 2460 FORZ=1TOS 2470 INPUT#2,A(Z) 2480 NEXTZ 2490 FORZ=1TOS 2500 FORY=1TOA(Z) 2510 INPUT#2,M(Z,Y) 2520 NEXTY 2530 NEXTZ 2540 FORZ=1TOS 2550 INPUT#2,S$(Z) 2560 NEXTZ 2570 CLOSE2 2580 PRINT"[147][197]NTER NAME YOU WISH TO CHANGE." 2590 INPUTV$ 2600 FORZ=1TOS 2610 IFS$(Z)=V$THEN2640 2620 NEXTZ 2630 PRINT"[206]AME NOT FOUND. [210]ETURNING TO MENU.":FORG=1TO3000:NEXT:RUN 2640 PRINT"[147][151][206]AME:";S$(Z):PRINT"[205]ARKS:" 2650 FORY=1TOA(Z) 2660 PRINTM(Z,Y)" "; 2670 NEXTY 2680 INPUT"[197]NTER MARK YOU WISH TO CHANGE";G 2690 FORX=1TOA(Z) 2700 IFG=M(Z,X)THEN2730 2710 NEXTX 2720 PRINT"[205]ARK NOT FOUND. [210]ETURNING TO MENU.":FORG=1TO3000:NEXT:RUN 2730 PRINT"[147][205]ARK FOUND." 2740 INPUT"[197]NTER NEW MARK";M(Z,X) 2750 GOTO1360 3000 LETFLAG=0 3010 FORZ=1TOS-1 3020 IFS$(Z)<=S$(Z+1)THEN3070 3030 H$=S$(Z):H=A(Z):FORQ=1TOA(Z):U(Q)=M(Z,Q):NEXTQ 3040 S$(Z)=S$(Z+1):A(Z)=A(Z+1):FORQ=1TOA(Z+1):M(Z,Q)=M(Z+1,Q):NEXTQ 3050 S$(Z+1)=H$:A(Z+1)=H:FORQ=1TOA(Z+1):M(Z+1,Q)=U(Q):NEXTQ 3060 LETFLAG=1 3070 NEXTZ 3080 IFFLAG=1THEN3000 3090 RETURN 3100 REM READ ERROR CHANNEL 3110 PRINT"[147][152][210]EAD DRIVE ERROR CHANNEL" 3120 OPEN15,8,15 3130 INPUT#15,A$,B$,C$,D$ 3140 CLOSE15 3150 PRINT"[196]RIVE STATUS:";A$;" ";B$;" ";C$;" ";D$ 3160 PRINT"[208]RESS ANY KEY TO CONTINUE" 3170 GETA$:IFA$=""THEN3170 3180 RUN